<?php

class PerfilAcessosController extends AppController {

    var $name = 'PerfilAcessos';
    var $helpers = array('Seguranca');

    /**
     * @desc Monta a tela principal
     */
    function index() {
        $usuarios = $this->PerfilAcesso->Usuario->find('all',array('contain'=>''));
        
        if (!empty($this->data['Usuario'])){
            $lista_menu = $this->PerfilAcesso->Menu->find('all', array(
                'contain' => array('PerfilAcesso'=>array('conditions'=>array('usuario_id'=>$this->data['Usuario']['id'])))
            ));            

            $this->set('lista_menu',$lista_menu);
        }
        
        if ( !empty($this->data['Controle']['envio']) && ($this->data['Controle']['envio'] == 1) ){
            $this->salvarPerfilAcesso();
        }
        
        $this->set('usuarios',$usuarios);
    }
    
    /**
     * @desc Grava o perfil de acesso do usuario
     */
    public function salvarPerfilAcesso() {

        if (!empty($this->data['PerfilAcesso'])) {

            foreach ($this->data['PerfilAcesso'] as $key => $item):

                if (sizeof($this->data['PerfilAcesso'][$key]) < 2) {
                    unset($this->data['PerfilAcesso'][$key]);
                } else {
                    $this->data['PerfilAcesso'][$key]['usuario_id'] = $this->data['Usuario']['id'];
                }

            endforeach;

            $this->PerfilAcesso->deleteAll(array('usuario_id' => $this->data['Usuario']['id']));
            
            $this->PerfilAcesso->create();
            if ($this->Usuario->saveAll($this->data)){
                $this->Session->setFlash(__('Perfil alterado com sucesso, as alterações serão válidas a partir do próximo acesso.', true), 'default', array('tipo' => 'S'), 'mensagem');
                $this->redirect(array('action'=>'index'));
            }else{
                $this->Session->setFlash(__('O perfil não salvo, tente novamente.', true), 'default', array('tipo' => 'E'), 'mensagem');
            }
            
        }
    }

}
